package com.malou.server.pagos.pagoletras;

import java.util.Date;
import java.util.List;

import com.extjs.gxt.ui.client.data.FilterPagingLoadConfig;
import com.extjs.gxt.ui.client.data.PagingLoadResult;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import com.malou.client.pagos.bancos.Banco;
import com.malou.client.pagos.pagoletras.Letra;
import com.malou.client.pagos.pagoletras.LetrasService;
import com.malou.client.util.MensajeData;
import com.malou.server.base.util.GxtGridPaginate;

public class LetrasServiceImpl extends RemoteServiceServlet implements LetrasService {

	private static final long serialVersionUID = 1L;

	@Override
	public PagingLoadResult<Letra> paginateLetrasPendientes(FilterPagingLoadConfig config,String filter,Date desde, Date hasta,Boolean historial) {
		GxtGridPaginate paginate = new GxtGridPaginate();
		paginate.config = config;
		
		return Letras.getPaginate(paginate, filter,desde,hasta,historial);
	}

	@Override
	public MensajeData save(List<Letra> list) {
		MensajeData data = new MensajeData();
		data.guardado = true;
		if(!Letras.save(list)){
			data.guardado = false;
			data.errorTipo = Letras.errorTipo;
			data.numero = Letras.numeroUnico;
		}
		return data;
	}

	@Override
	public MensajeData cancelar(Integer id) {
		MensajeData data = new MensajeData();
		data.guardado = true;
		if(!Letras.cancelar(id)){
			data.guardado = false;
		}
		return data;
	}

	@Override
	public MensajeData edit(Letra letra) {
		MensajeData data = new MensajeData();
		data.guardado = true;
		
		if(!Letras.edit(letra)){
			data.guardado = false;
			data.errorTipo = Letras.errorTipo;
		}
		
		return data;
	}

	@Override
	public List<Banco> getBancos() {		
		return Letras.getBancos();
	}

	@Override
	public MensajeData renovar(Integer padre_id, List<Letra> list) {
		MensajeData data = new MensajeData();
		data.guardado = true;
		if(!Letras.renovar(padre_id, list)){
			data.guardado = false;
			data.errorTipo = Letras.errorTipo;
			data.numero = Letras.numeroUnico;
		}
		return data;
	}
	
	public MensajeData delete(Integer id){
		MensajeData data = new MensajeData();
		data.guardado=true;
		if(!Letras.delete(id))
			data.guardado=false;
		return data;
	}
	
	@Override
	public MensajeData deleteAll(String ids) {
		MensajeData data = new MensajeData();
		data.guardado = true;
	if(!Letras.deleteAll(ids)){
			data.guardado = false;
		}
		return data;
	}
	

}
